//    Copyright (C) Kherty.  All rights reserved.
using System;
using System.Runtime.InteropServices;

namespace OpenLS.UI.Interop
{
    [ComImport,
   Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE"),
    InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    internal interface IShellItem
    {
        // Not supported: IBindCtx
        
        void BindToHandler([MarshalAs(UnmanagedType.Interface)] IntPtr pbc, ref Guid bhid, ref Guid riid, out IntPtr ppv);

        
        void GetParent([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);

        
        void GetDisplayName(NativeMethods.SIGDN sigdnName, [MarshalAs(UnmanagedType.LPWStr)] out string ppszName);

        
        void GetAttributes(uint sfgaoMask, out uint psfgaoAttribs);

        
        void Compare([MarshalAs(UnmanagedType.Interface)] IShellItem psi, uint hint, out int piOrder);
    }

}
